/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package contoladores;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Iterator;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import vista.VIngrediente;

import modelos.MIngrediente;

/**
 *
 * @author usuario
 */
public class CIngrediente implements  ActionListener{

    private VIngrediente vista;
    private MIngrediente modelo;

    public CIngrediente(VIngrediente vista) {
        this.vista = vista;
        modelo = new MIngrediente();
        vista.addListener(this);
    }

    public void actionPerformed(ActionEvent ae) {
        if(ae.getActionCommand().equals("Agregar")){
                agregar();
                 
        }        
        else if(ae.getActionCommand().equals("Salir")){
                salir();
                 
        }
        else if(ae.getActionCommand().equals("Cancelar")){
            cancelar();
             
        }
        else if(ae.getActionCommand().equals("Modificar")){
            modificar();
             
        } 
        else if(ae.getActionCommand().equals("Buscar")){
            buscar();             
        }             
    }
    
    private boolean validarCamposVacios(){
    	if(vista.getCod().equals("") || vista.getDes().equals("") || vista.getSto().equals(""))
    		return false;
    	else
    		return true;    		
    }
  
    private boolean validarDisponibilidad(){
            try{
                if(Double.parseDouble(vista.getSto())<0)
                	return false;
            }catch(NumberFormatException ex){
                return false;
            }

        return true;
    }
    
    
    private boolean codigoVacio(){
    	if(vista.getCod().equals(""))
    		return false;
    	else
    		return true;    		
    }
    
    

   private void buscar() {
		if(codigoVacio()){
			modelo.setCod_Ingrediente(vista.getCod());
			if(modelo.consultar()){
				vista.setDes(modelo.getDes_Ingrediente());
				vista.setCod(modelo.getCod_Ingrediente());
				vista.setSto(""+modelo.getDisponibilidad());
			}
			else
				JOptionPane.showMessageDialog(new JFrame(),"El codigo no esta registrado","Proyecto 2",JOptionPane.WARNING_MESSAGE);
		}
		else
			JOptionPane.showMessageDialog(new JFrame(),"El codigo se encuentra vacio por favor ingreselo","Proyecto 2",JOptionPane.WARNING_MESSAGE);
        
	}

private void agregar() {
	if(validarCamposVacios())
		if(validarDisponibilidad()){
			modelo.setCod_Ingrediente(vista.getCod());
			modelo.setDes_Ingrediente(vista.getDes());
			modelo.setDisponibilidad(Double.parseDouble(vista.getSto()));
			modelo.setEstatus("A");
			if(modelo.registar()){
				JOptionPane.showMessageDialog(new JFrame(),"Ingrediente registrado con exito","Proyecto 2",JOptionPane.INFORMATION_MESSAGE);
				vista.limpiar();
			}
			else
				JOptionPane.showMessageDialog(new JFrame(),"El codigo no esta registrado","Proyecto 2",JOptionPane.WARNING_MESSAGE);
		}
		else
			JOptionPane.showMessageDialog(new JFrame(),"Sotck no valido","Proyecto 2",JOptionPane.WARNING_MESSAGE);
	else
		JOptionPane.showMessageDialog(new JFrame(),"El codigo se encuentra vacio por favor ingreselo","Proyecto 2",JOptionPane.WARNING_MESSAGE);

		
	}

private void cancelar() {
		vista.limpiar();
		
	}

private void salir() {
vista.hide();		
	}

private void modificar() {
	if(validarCamposVacios())
		if(validarDisponibilidad()){
			modelo.setCod_Ingrediente(vista.getCod());
			modelo.setDisponibilidad(Double.parseDouble(vista.getSto()));
		if(modelo.actualizar()){
			JOptionPane.showMessageDialog(new JFrame(),"ingrediente actualizado con exito","Proyecto 2",JOptionPane.INFORMATION_MESSAGE);
			vista.limpiar();
		}
		else
			JOptionPane.showMessageDialog(new JFrame(),"El codigo no esta registrado","Proyecto 2",JOptionPane.WARNING_MESSAGE);
	}
	else
		JOptionPane.showMessageDialog(new JFrame(),"El codigo se encuentra vacio por favor ingreselo","Proyecto 2",JOptionPane.WARNING_MESSAGE);

			
	}






}
